class DonePlugin {
    constructor(options){
        this.options = options
    }
    apply(compiler){
        compiler.hooks.done.intercept({
            register(tapInfo){//每当订阅一个新的事件函数就会触发
                console.log(`拦截器1 register`,tapInfo.name);
                return tapInfo;
            },
            tap(tapInfo){//每当一个事件函数执行了就会触发
                console.log(`拦截器1 tap`,tapInfo.name);
            },
            call(name,age){//每次调用call会触发一次
                console.log(`拦截器1 call`);
            }
        })
        compiler.hooks.done.tap("DonePlugin", (stats) => {
            console.log("Hello ", this.options.name);
        });
        // compiler.hooks.done.tapAsync("DonePlugin", (stats,callback) => {
        //     console.log(stats);
        //     callback();
        // });
        // compiler.hooks.done.tapPromise('DonePlugin',(stats)=>{
        //     return new Promise((resolve)=>{
        //         console.log(stats);
        //         resolve();
        //     })
        // });
    }
}
module.exports = DonePlugin